package com.dawn.module.cms.dal.dataobject.article;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.dawn.framework.mybatis.core.dataobject.BaseDO;

/**
 * 文章管理 DO
 *
 * @author yyh
 */
@TableName(value = "cms_article", autoResultMap = true)
@KeySequence("cms_article_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CmsArticleDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 文章标题
     */
    private String title;
    /**
     * 文章描述
     */
    private String description;
    /**
     * 标签
     */
    private String tags;
    /**
     * 文章内容
     */
    private String content;
    /**
     * html的content
     */
    private String contentFormat;
    /**
     * 分类类别
     */
    private Long categoryId;
    /**
     * 分类类别Key
     */
    private String categoryKey;
    /**
     * 发布状态
     */
    private Integer publish;
    /**
     * 是否置顶
     */
    private Integer topping;
    /**
     * 发布时间
     */
    private LocalDateTime publishTime;
    /**
     * 封面图
     */
    private String coverImg;
    /**
     * 阅读次数
     */
    private Integer views;
    /**
     * 来源
     */
    private String source;
    /**
     * 发布人
     */
    private String publishUser;
    /**
     * 链接地址
     */
    private String linkUrl;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 关键词
     */
    private String keywords;
    /**
     * 作者
     */
    private String author;
    /**
     * 演示类型
     */
    private String demoType;
    /**
     * 演示地址
     */
    private String demoUrl;
    /**
     * 图集
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> pictures;
    /**
     * 附件
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> files;

    /**
     * 推荐状态
     */
    private Integer recommend;
    /**
     * 顺序
     */
    private Integer sort;

}